package com.lu.pojo.array;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class Sort {
    public static void main(String[] args) {
       // 随机生成
        int [][] arr = new int[4][4];
        Random rand = new Random();
        for (int i = 0; i <arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                arr[i][j]=rand.nextInt(300);
            }
        }
        System.out.println("排序前");
        printArray(arr);
        toArray(arr);
        System.out.println("排序后");
        printArray(arr);
    }

    public static void printArray(int[][] arr){
        for (int i = 0; i <arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                System.out.print(arr[i][j]+ " ");
            }
            System.out.println();
        }
    }

    public static int[][] toArray(int[][] arr){
        // 转换一 维
        List<Integer> list = new ArrayList<>();
        for (int i = 0; i <arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                list.add(arr[i][j]);
            }
        }
        // 排序
        for (int i = 0; i < list.size()-1; i++) {
            for (int j = 0; j < list.size()-i-1; j++) {
                int t;
                if (list.get(j) > list.get(j + 1)){
                    t=list.get(j);
                    list.set(j,list.get(j+1));
                    list.set(j+1,t);
                }
            }
        }
        System.out.println(list);
        // 转换二维
        int cur = 0;
        for (int i = 0; i <arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                arr[i][j]=list.get(cur++);
            }
        }
        // copy
        return  arr;
    }

}
